package com.ibm.framework.exception.model;

import java.io.Serializable;

/**
 * Exception information object.
 * 
 * @author Gan Jian Feng
 */

public class ExceptionInfo implements Serializable {
	/**
	 * serialVersionUID
	 */
    private static final long serialVersionUID = 5013880719239284299L;

    /**
     * 异常code
     */
    private String code; 

    /**
     * 异常被拦截的时间
     */
    private String interceptTime; 

    /**
     * 拦截现场类，在此类上拦截到异常
     */
    private String interceptedClass; 
    
    /**
     * 拦截现场方法，在此方法上拦截到异常
     */
    private String interceptedMethod;
    
    /**
     * 方法的参数值
     */
    private String parameterValue;

    /**
     * 拦截到的异常类名
     */
    private String exceptionClass; 
    
    /**
     * 拦截到的异常message
     */
    private String exceptionMessage;

    /**
     * 根异常类名
     */
    private String rootException;
    
    /**
     * 根异常消息
     */
    private String rootExceptionMsg;
    
    /**
     *  throw根异常的类
     */
    private String rootCauseSpotClass;
    
    /**
     * throw根异常的方法
     */
    private String rootCauseSpotMethod;
    
    /**
     * throw根异常的行号
     */
    private String rootCauseSpotLine;

    /**
     * 完整的stack trace信息
     */
    private String fullStackTrace; 

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *  获取异常代码
     * @return 异常代码
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getCode() {
        return code;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置异常编码
     * @param code 异常编码
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setCode(String code) {
        this.code = code;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取异常被拦截的时间
     * @return 异常被拦截的时间
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getInterceptTime() {
        return interceptTime;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置异常被拦截的时间
     * @param interceptTime 被拦截的时间
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setInterceptTime(String interceptTime) {
        this.interceptTime = interceptTime;
    }
    /**
     * 
     * 功能描述: <
     * 〈功能详细描述〉
     * 获取拦截现场类
     * @return 拦截现场类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getInterceptedClass() {
        return interceptedClass;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置拦截现场类
     * @param interceptedClass 拦截现场类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setInterceptedClass(String interceptedClass) {
        this.interceptedClass = interceptedClass;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置拦截现场方法
     * @return 拦截现场方法
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getInterceptedMethod() {
        return interceptedMethod;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置拦截现场方法
     * @param interceptedMethod 拦截现场方法
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setInterceptedMethod(String interceptedMethod) {
        this.interceptedMethod = interceptedMethod;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取方法的参数值
     * @return 方法的参数值
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getParameterValue() {
        return parameterValue;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置方法的参数值
     * @param parameterValue 方法的参数值
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setParameterValue(String parameterValue) {
        this.parameterValue = parameterValue;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取异常类
     * @return 异常类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getExceptionClass() {
        return exceptionClass;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置异常类
     * @param exceptionClass 异常类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setExceptionClass(String exceptionClass) {
        this.exceptionClass = exceptionClass;
    }

     /**
      * 
      * 功能描述: <br>
      * 〈功能详细描述〉
      * 获取异常信息
      * @return 异常信息
      * @see [相关类/方法](可选)
      * @since [产品/模块版本](可选)
      */
    public String getExceptionMessage() {
        return exceptionMessage;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置异常信息
     * @param exceptionMessage 异常信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setExceptionMessage(String exceptionMessage) {
        this.exceptionMessage = exceptionMessage;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取根异常
     * @return 根异常
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getRootException() {
        return rootException;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置根异常信息
     * @param rootException 根异常信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setRootException(String rootException) {
        this.rootException = rootException;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取根异常信息
     * @return 根异常信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getRootExceptionMsg() {
        return rootExceptionMsg;
    }
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置根异常信息
     * @param rootExceptionMsg 根异常信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setRootExceptionMsg(String rootExceptionMsg) {
        this.rootExceptionMsg = rootExceptionMsg;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取根异常的类
     * @return 根异常的类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getRootCauseSpotClass() {
        return rootCauseSpotClass;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置根异常的类
     * @param rootCauseSpotClass 根异常的类
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setRootCauseSpotClass(String rootCauseSpotClass) {
        this.rootCauseSpotClass = rootCauseSpotClass;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取根异常方法
     * @return 根异常方法
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getRootCauseSpotMethod() {
        return rootCauseSpotMethod;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置根异常方法
     * @param rootCauseSpotMethod 根异常方法
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setRootCauseSpotMethod(String rootCauseSpotMethod) {
        this.rootCauseSpotMethod = rootCauseSpotMethod;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     *
     * @return  RootCauseSpotLine
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getRootCauseSpotLine() {
        return rootCauseSpotLine;
    }
    
    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置根异常的行号
     * @param rootCauseSpotLine 根异常的行号
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setRootCauseSpotLine(String rootCauseSpotLine) {
        this.rootCauseSpotLine = rootCauseSpotLine;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 获取完整的stack trace信息
     * @return 完整的stack trace信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public String getFullStackTrace() {
        return fullStackTrace;
    }

    /**
     * 
     * 功能描述: <br>
     * 〈功能详细描述〉
     * 设置完整的stack trace信息
     * @param fullStackTrace 完整的stack trace信息
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    public void setFullStackTrace(String fullStackTrace) {
        this.fullStackTrace = fullStackTrace;
    }
}
